import Vue from 'vue' // 导入vue

import 'normalize.css/normalize.css' // 初始化css样式的文件

import ElementUI from 'element-ui' // 导入element-ui组件库
import 'element-ui/lib/theme-chalk/index.css' // 导入了element-ui的样式
import locale from 'element-ui/lib/locale/lang/en' // 导入element-ui组件库的英文包

import '@/styles/index.scss' // 导入了全局的样式文件
import App from './App' // 导入App根组件
import store from './store' // 导入vuex仓库
import router from './router'// 导入路由
import '@/icons/index.js' // svg图标
import '@/permission' // 导入了权限控制(路由的导航守卫)
// 导入并执行全部所有的指令
// import '@/directives'
// ---按需导入某些指令并注册------
// import { imgerror, red } from '@/directives'
// Vue.directive('imgerror', imgerror)
// Vue.directive('red', red)
// ---------------------
// 批量导入所有指令并注册
import * as allDirectives from '@/directives'
import MyComponents from '@/components/index.js'
// 自己定义的样式文件,该文件可以修改element-ui的组件的样式
// import '@/styles/element-variables.scss'
// 批量导入所有过滤器
import * as allFilters from '@/filters'
import '@/styles/theme.scss'
import i18n from '@/Lang'
import Print from 'vue-print-nb'
Vue.use(Print)
// console.log(allFilters)
Object.keys(allFilters).forEach(item => {
  // console.log(allFilters[item])
  Vue.filter(item, allFilters[item])
})

// console.log(allDirectives)
// 使用forin循环遍历对象
/* for (const k in allDirectives) {
  // console.log(k) // 键
  // console.log(allDirectives[k]) // 值
  Vue.directive(k, allDirectives[k])
} */
// Object.keys可以将对象的键收集到一个数组中
Object.keys(allDirectives).forEach(item => {
  Vue.directive(item, allDirectives[item])
})
// 导入axios实例并挂载到vue原型上(测试)
// import http from '@/utils/request'
// Vue.prototype.$http = http
// 设置为英文语言
// Vue.use(ElementUI, { locale })
// 如果想要中文版 element-ui，按如下方式声明
// Vue.use(ElementUI)
Vue.use(ElementUI, {
  i18n: (key, value) => i18n.t(key, value)
})
Vue.use(MyComponents)
Vue.config.productionTip = false
// 创建vue实例并挂载 路由 仓库 将app根组件渲染到html页面的#app的位置
new Vue({
  router,
  store,
  i18n,
  render: h => h(App)
}).$mount('#app')
